package com.sims.service.impl;

import java.util.List;

import com.sims.dao.ISimsClassDao;
import com.sims.dao.impl.SimsClassDaoImp;
import com.sims.eo.SimsClass;
import com.sims.service.IClassService;

public class ClassServiceImp implements IClassService {
	ISimsClassDao simsClassDao = new SimsClassDaoImp();

	@Override
	public List<SimsClass> getAllSimsClass() {
		return simsClassDao.getAllSimsClass();
	}

	@Override
	public boolean deletSimsClassById(Long id) {
		return simsClassDao.deletSimsClassById(id);
	}

	@Override
	public SimsClass getSimsClassById(Long id) {
		return simsClassDao.getSimsClassById(id);
	}

	@Override
	public SimsClass getSimsClassbyClassName(String className) {
		return simsClassDao.getSimsClassbyClassName(className);
	}

	@Override
	public boolean updateSimsClass(SimsClass simsClass) {
		SimsClass classdb = getSimsClassById(simsClass.getId());
		int count = (int) simsClassDao.getRowCountByClassName(simsClass
				.getClassName());
		// 数据库不存在或者不是本条数据
		if (count < 1
				|| (count >= 1 && simsClass.getClassName().equals(
						classdb.getClassName()))) {
			if (simsClass.getClassCode() != null) {
				classdb.setClassCode(simsClass.getClassCode());
			}
			if (simsClass.getClassName() != null) {
				classdb.setClassName(simsClass.getClassName());
			}
			if (simsClass.getDepartment() != null) {
				classdb.setDepartment(simsClass.getDepartment());
			}
			if (simsClass.getMajor() != null) {
				classdb.setMajor(simsClass.getMajor());
			}
			if (simsClass.getGradeId() != null) {
				classdb.setGradeId(simsClass.getGradeId());
			}
			return simsClassDao.updateSimsClass(classdb);
		}

		return false;
	}

	@Override
	public List<SimsClass> getAllSimsClass(int pageNo, int pageSize) {
		return simsClassDao.getAllSimsClass(pageNo, pageSize);
	}

	@Override
	public long getRowCount() {
		return simsClassDao.getRowCount();
	}

	@Override
	public long createClass(SimsClass simsClass) {
		long id = 0;
		int count = (int) simsClassDao.getRowCountByClassName(simsClass
				.getClassName());
		if (count < 1) {
			return simsClassDao.createClass(simsClass);
		}
		return id;
	}

	@Override
	public long getRowCountByClassName(String className) {
		return simsClassDao.getRowCountByClassName(className);
	}
}
